ELIXIR N2O MIX
Так, це вірно, ми випустили нову версію N2O для Elixir. Оскільки зараз червень, а N2O 6 років, це 6.6.6 :-) Загалом, це було вже так давно, що я відмовився від підтримки Elixir, задля того щоб мати змогу зосередитись на чомусь значущому, принаймні на стороні Erlang.
Під повною підтримкою N2O Elixir, я маю на увазі, автоматичний імпорт записів Erlang із використанням модуля та проксі-сервера, модифікування викликів із :n2o.sid() на N2O.sid(), тощо. Також, ми припускаємо, що mix.ex містить визначення точки входу програми та інші життєво важливі речі, але не більше! Оскільки N2O прийшов із країни підтримки чисті дупи, ми рекомендуємо лише життєво важливі макроси у верхній частині сторінки Sample.Index:
Мінімальний sys.config у Elixir config.exs синтаксисі матиме лише належне налаштування KVX для власного рівня DB (з використанням kvx_st як власної реалізації потокового серверу для RocksDB), протоколу NITRO та Sample.Routes.
Ми використовуємо простий бінарний шаблон як найшвидший спосіб маршрутизації, але ви можете використовувати будь-який код на цьому рівні:
Фактична сторінка, яка містить пряме вбудовування N2O JavaScript SDK із CDN, наведена нижче та включена як статичний файл для ковбойського обслуговування (може також отримати з CDN):
HTML:
JavaScript CDN ws.n2o.dev:
INIT
Тут знаходиться код, який монтує події зворотного зв’язку JavaScript, що доставляє вихідну інформацію DOM на сервера. На сторінці підключення має бути надіслано маркер ініціалізації 'N2O', який викликає регістр :init case of event у модулі Sample.index
Він містить ініціалізацію курсору KVX для цієї конкретної кімнати, а також продовжити підписку GPROC/SYN для двох тем: {:topic, room} і :n2o.sid() --- авторизований процес WebSocket. Зауважте, що у випадку оновлення елементів DOM вони вже повинні бути присутніми на сторінці, інакше ви отримаєте виняток помилки. У нижній частині події :init Nitrogen ви можете побачити отримання записаних повідомлень із бази даних. Усі вони передаються через подію {:client,_} event.
RENDER
У цьому випадку він просто додає елемент DOM до :history div.
CHAT
Основною подією прикладного модуля Sample.Index є :chat. Він отримує імена кімнат і користувачів із сеансу та повідомлення з події, яка була надіслана клієнтом, потім зберігає їх у KVX і повідомляє про рендеринг.
Наступна версія MAD зможе створити скелетний код Elixir. Джерела робочого SAMPLE портованого на Elixir, тут:
Brought to you by:
— am-kantox — Aleksei Matiushkin
— bushyn — Arseniy Bushyn
— lessless — Yevhenii Kurtov
— 5HT — Namdak Tonpa